package com.jxpanda.spring.module.wechat.component.message.pojo.general;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.jxpanda.spring.module.wechat.component.message.pojo.MsgType;
import com.jxpanda.spring.module.wechat.component.message.pojo.WechatMessage;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.SuperBuilder;

import java.util.List;

/**
 * 小程序通知消息类
 */
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
@Data
public class WechatMiniprogramNoticeMessage extends WechatMessage {

    @JsonProperty("miniprogram_notice")
    private MiniprogramNotice miniprogramNotice;

    @Override
    public String getMsgType() {
        return MsgType.MINIPROGRAM_NOTICE.getValue();
    }

    @Data
    public static class MiniprogramNotice {
        /**
         * 小程序appid
         */
        @JsonProperty("appid")
        private String appId;

        /**
         * 小程序页面路径
         */
        @JsonProperty("page")
        private String page;

        /**
         * 通知标题
         */
        @JsonProperty("title")
        private String title;

        /**
         * 通知描述
         */
        @JsonProperty("description")
        private String description;

        /**
         * 是否将第一个字段作为重点内容
         */
        @JsonProperty("emphasis_first_item")
        private boolean emphasisFirstItem;

        /**
         * 通知内容项
         */
        @JsonProperty("content_item")
        private List<ContentItem> contentItems;

        @Data
        public static class ContentItem {
            /**
             * 内容项的名称
             */
            @JsonProperty("key")
            private String key;

            /**
             * 内容项的值
             */
            @JsonProperty("value")
            private String value;
        }
    }
}
